package com.ningxun.rms.domain.busrequire;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ningxun.rms.common.annotation.Excel;
import com.ningxun.rms.common.core.domain.BaseEntity;

/**
 * 岗位需求审核对象 bus_require_approve
 * 
 * @author rms
 * @date 2025-07-15
 */
public class BusRequireApprove extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 审核id */
    private Long approveId;

    /** 需求id */
    @Excel(name = "需求id")
    private Long requireId;

    /** 审核人id */
    @Excel(name = "审核人id")
    private Long approverId;

    /** 0通过 1审核 2驳回 */
    @Excel(name = "0通过 1审核 2驳回")
    private Long approveStatus;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String approveReview;

    private String unit;

    private String post;

    private Long demandType;

    private Long deptId;
    private String deptName;

    private String parentDeptName;
    public String getParentDeptName() { return parentDeptName; }
    public void setParentDeptName(String parentDeptName) { this.parentDeptName = parentDeptName; }

    private java.util.List<Long> deptIds;
    public java.util.List<Long> getDeptIds() { return deptIds; }
    public void setDeptIds(java.util.List<Long> deptIds) { this.deptIds = deptIds; }

    public Long getDemandType() {
        return demandType;
    }

    public void setDemandType(Long demandType) {
        this.demandType = demandType;
    }

    public String getPost() {
        return post;
    }

    public void setPost(String post) {
        this.post = post;
    }

    public String getUnit() {
        return unit;
    }

    public BusRequireApprove() {
    }

    public BusRequireApprove(Long approveId, Long requireId, Long approverId, Long approveStatus, String approveReview, String unit, String post, Long demandType, Date approveTime) {
        this.approveId = approveId;
        this.requireId = requireId;
        this.approverId = approverId;
        this.approveStatus = approveStatus;
        this.approveReview = approveReview;
        this.unit = unit;
        this.post = post;
        this.demandType = demandType;
        this.approveTime = approveTime;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approveTime;

    public void setApproveId(Long approveId) 
    {
        this.approveId = approveId;
    }

    public Long getApproveId() 
    {
        return approveId;
    }

    public void setRequireId(Long requireId) 
    {
        this.requireId = requireId;
    }

    public Long getRequireId() 
    {
        return requireId;
    }

    public void setApproverId(Long approverId) 
    {
        this.approverId = approverId;
    }

    public Long getApproverId() 
    {
        return approverId;
    }

    public void setApproveStatus(Long approveStatus) 
    {
        this.approveStatus = approveStatus;
    }

    public Long getApproveStatus() 
    {
        return approveStatus;
    }

    public void setApproveReview(String approveReview) 
    {
        this.approveReview = approveReview;
    }

    public String getApproveReview() 
    {
        return approveReview;
    }

    public void setApproveTime(Date approveTime) 
    {
        this.approveTime = approveTime;
    }

    public Date getApproveTime() 
    {
        return approveTime;
    }

    public Long getDeptId() { return deptId; }
    public void setDeptId(Long deptId) { this.deptId = deptId; }
    public String getDeptName() { return deptName; }
    public void setDeptName(String deptName) { this.deptName = deptName; }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("approveId", getApproveId())
            .append("requireId", getRequireId())
            .append("approverId", getApproverId())
            .append("approveStatus", getApproveStatus())
            .append("approveReview", getApproveReview())
            .append("approveTime", getApproveTime())
            .toString();
    }
}
